#include "../include/file.h"

// 写入到文件中
void F_print(Double_Link_List* list_1,const char * file_name)
{
    FILE * fp = fopen( file_name , "w");
    if (NULL ==fp)
    {
        ERRLOG("文件创建失败");
        return ;
    }
    // 光标移动到开头
    fseek(fp , 0 , SEEK_SET);

    Double_Node * ptr = list_1->next;
    // 遍历写入
    for (size_t i = 0; NULL != ptr ; i++)
    {
        fprintf( fp , "%s\t%s\t%c\n" ,ptr->data.name , ptr->data.password , ptr->data.id);
        ptr = ptr->next;
    }
    
    fclose(fp);
}
// 从文件中读取
void F_scanf(Double_Link_List* list , const char * file_name)
{
    // 以只读打开
    FILE*  fp = fopen( file_name , "r");
    if (NULL ==fp)
    {
        ERRLOG("文件创建失败");
        return ;
    }
    // 移动光标到头
    fseek( fp , 0 , SEEK_SET );

    // 判断文件行数
    char ch = '0';  // 接收文件的字符
    int len = 0;      // 判断文件的行数
    while (EOF != (ch = fgetc(fp)))
    {
        if ('\n'  == ch)
        {
            len++;
        }
    }

    // 移动光标到头
    fseek( fp , 0 , SEEK_SET );
    Log_in_data data;
    Double_Node * ptr = list->next;
    for (size_t i = 0; i < len; i++)
    {
        fscanf( fp , "%s\t%s\t%c\n" , data.name , data.password , &data.id);
        insert_double_node( list , data , i + 1 );
    }

    fclose(fp);
    return ;
}




